<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="description" content="Changelog for ABI Compliance Checker" />
  <title>ABI Compliance Checker: History</title>

  <style type="text/css">
    body {
      margin-top: 1.0em;
      background-color: #deeef7;
      font-family: Helvetica, Arial, FreeSans, san-serif;
      color: #000000;
    }
    #container {
      margin: 0 auto;
      width: 700px;
    }
    h1 { font-size: 3.8em; color: #211108; margin-bottom: 3px;margin-top:0px;padding-top:0px;}
    h1 .small { font-size: 0.4em; }
    h1 a { text-decoration: none }
    h2 { font-size: 1.5em; color: #211108; }
    h3 { text-align: center; color: #211108; }
    a { color: #211108; }
    .description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
    .download { float: right; }
    pre {padding: 0px;margin: 0px;padding-left: 10px;word-wrap:break-word;white-space: pre-wrap;}
    hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
    .footer { text-align:center; padding-top:30px; font-style: italic; }
    .code {border: dashed 1px gray; background-color: #f0f0f0;}
    .listing {padding: 10px;border: 1px solid black;width: 70%;font-family:"DejaVu Sans Mono", "Monaco", "Courier New", monospace;font-size:14px;}
    .summary {border:1px solid black;border-collapse:collapse;}
    table.summary td, table.summary th {border:1px solid black;padding:2px;}
  </style>

</head>

<body>
<a href="https://github.com/lvc/abi-compliance-checker"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>

<div id="container">

<h1>ABI Compliance<br/>Checker: History</h1>
<p/>
<br/>

<b>Version 2.3 (May 15, 2018)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Support for GCC 8
    </li>
    <li>
        Use -fdump-lang-class instead of -fdump-class-hierarchy
    </li>
    <li>
        Enable internal mangling of C++ funcs for all future GCC versions
    </li>
    <li>
        Added -keep-reserved option to report changes in reserved fields
    </li>
    <li>
        Fixed license to LGPL 2.1
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fix detection of GCC 7 compiled with --with-gcc-major-version-only
    </li>
    <li>
        Redirect stderr of ‘objdump -f’ to null
    </li>
    <li>
        Escape braces in regex for compatibility with future Perl 5 versions
    </li>
    <li>
        Fixed internal mangling
    </li>
</ul>
<br/>

<b>Version 2.2 (August 30, 2017)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Improved support for Fortran
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed analysis of inline functions
    </li>
    <li>
        Fixed analysis of calling conventions
    </li>
    <li>
        Fixed handling of C++ keywords in C code
    </li>
    <li>
        Fixed -lang option
    </li>
    <li>
        Fixed handling of errors when compressing ABI dumps
    </li>
    <li>
        Fixed style of the report
    </li>
</ul>
<br/>

<b>Version 2.1 (June 17, 2017)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Show added v-table symbols for public classes
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed analysis of static methods
    </li>
    <li>
        Fixed analysis of typedefs
    </li>
    <li>
        Fixed analysis of zero-size structs
    </li>
    <li>
        Fixed logs
    </li>
    <li>
        Fixed analysis of static libraries on Windows
    </li>
    <li>
        Fixed search for files on Windows
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Documented -skip-internal-types option in -help
    </li>
    <li>
        Add noindex meta tag to report if no changes detected
    </li>
</ul>
<br/>

<b>Version 2.0 (January 28, 2017)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Code refactoring
    </li>
    <li>
        Works faster on big libraries
    </li>
    <li>
        Added a module to create ABI dump from AST tree
    </li>
    <li>
        Added a module to create AST dump
    </li>
    <li>
        Added a module to parse GCC AST
    </li>
    <li>
        Added a module to find system files and automatically generate include paths
    </li>
    <li>
        Added a module to mangle C++ symbols
    </li>
    <li>
        Added a module to read ELF binaries
    </li>
    <li>
        Added a module to handle type attributes
    </li>
    <li>
        Added a module to handle XML descriptors
    </li>
    <li>
        Added a module to filter symbols
    </li>
    <li>
        Added a module to handle input data
    </li>
    <li>
        Added a module for logging
    </li>
    <li>
        Extended test suite
    </li>
    <li>
        Partial support for GCC 6
    </li>
    <li>
        Improved support for Solaris
    </li>
    <li>
        Compare versioned data types
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        Added -filter option: a path to XML descriptor with skip_* rules to filter analyzed symbols in the report
    </li>
    <li>
        Added -keep-cxx option to check _ZS*, _ZNS* and _ZNKS* symbols
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed automatic generation of include paths
    </li>
    <li>
        Fixed report for removed virtual symbols
    </li>
    <li>
        Fixed XML-format ABI dumps
    </li>
    <li>
        Fixed source-compatibility reports
    </li>
    <li>
        Fixed counter of checked data types
    </li>
    <li>
        Fixed lists of affected symbols
    </li>
    <li>
        Fixed analysis of standard C++ libraries
    </li>
    <li>
        Fixed analysis of added and removed virtual methods
    </li>
    <li>
        Fixed style of the report
    </li>
    <li>
        Fixed analysis of alias symbols
    </li>
    <li>
        Uncover changed typedefs properly
    </li>
    <li>
        Fixed Parameter_From_Register and Parameter_To_Register rules
    </li>
    <li>
        Fixed analysis of data types derived from template instances
    </li>
    <li>
        Enable -headers-only option automatically if header file is used as input library descriptor
    </li>
    <li>
        Fixed analysis of template instances
    </li>
    <li>
        Fixed analysis of static data
    </li>
    <li>
        Fixed error message if modules are not installed
    </li>
    <li>
        Fixed analysis of versioned symbols
    </li>
    <li>
        Fixed -ext option
    </li>
    <li>
        Fixed -use-dumps option
    </li>
    <li>
        Fixed -debug option
    </li>
    <li>
        Fixed console output
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Removed support for too old ABI dumps
    </li>
</ul>
<br/>

<b>Version 1.99.25 (October 07, 2016)</b><br/>
<b>New Options</b>
<ul>
    <li>
        -test-abi-dumper: compare ABI dumps created by the ABI Dumper tool
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Do not list a symbol as removed in the source-compatibility report if it is presented in the dynsym table
    </li>
</ul>
<br/>

<b>Version 1.99.24 (October 04, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Support for Clang
    </li>
    <li>
        Improved a module to compare operating systems
    </li>
    <li>
        Improved support for C++ keywords in C code
    </li>
    <li>
        Improved support for Windows
    </li>
    <li>
        Improved support for MinGW
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -skip-typedef-uncover: do not report a problem if type is covered or uncovered by typedef (useful for broken debug info)
    </li>
    <li>
        -mingw-compatible: if input header files are compatible with the MinGW GCC compiler, then you can tell the tool about this and speedup the analysis
    </li>
    <li>
        -skip-unidentified: skip header files in 'headers' and 'include_preamble' sections of the XML descriptor that cannot be found
    </li>
    <li>
        -disable-constants-check: do not check for changes in constants
    </li>
    <li>
        -skip-added-constants: do not detect added constants
    </li>
    <li>
        -skip-removed-constants: do not detect removed constants
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Do not show GCC version in the source compatibility report
    </li>
    <li>
        Renamed CPU Type column to Arch in the report
    </li>
    <li>
        Support for ABI dumps v3.3
    </li>
    <li>
        The -cpp-compatible option is now enabled by default
    </li>
</ul>
<br/>

<b>Version 1.99.23 (August 15, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Improved generation of quick empty reports
    </li>
    <li>
        Improved SysCheck.pm module for analysis of operating systems
    </li>
    <li>
        Improved support for Windows 10
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -disable-quick-empty-report: do not generate quick empty report if input ABI dumps are equal
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed lists of affected symbols in the XML-format report.
    </li>
</ul>
<br/>

<b>Version 1.99.22 (July 04, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        New style of the report
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -old-style: generate old-style report
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed handling of patterns in -skip-* options
    </li>
    <li>
        Fixed rounding of the BC rate in the report
    </li>
</ul>
<br/>

<b>Version 1.99.21 (May 26, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Up to 4 times faster on big libraries
    </li>
    <li>
        Show compatibility rate instead of verdict in the report
    </li>
    <li>
        Highlight the numbers of high/medium/low severity problems in the report
    </li>
    <li>
        Show percentage of affected methods in the problem description
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -count-symbols: count public symbols in the ABI dump
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed quick comparison of equal ABI dumps
    </li>
</ul>
<br/>

<b>Version 1.99.20 (May 14, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Use regular expressions instead of wildcards in -skip-* options
    </li>
</ul>
<br/>

<b>Version 1.99.19 (April 18, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Support for GCC 5.1
    </li>
</ul>
<b>Misc</b>
<ul>
    <li>
        Separated LICENSE file
    </li>
    <li>
        Removed obsolete descriptors from the package
    </li>
    <li>
        Updated docs
    </li>
</ul>
<br/>

<b>Version 1.99.18 (April 03, 2016)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed comparison of qualifiers in parameter data types
    </li>
    <li>
        Fixed problem descriptions in the report
    </li>
    <li>
        Reduced size of the report
    </li>
    <li>
        Fixed console output
    </li>
</ul>
<br/>

<b>Version 1.99.17 (March 12, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Added a check for changes in parameters of function pointers
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed comparison of virtual table entries
    </li>
    <li>
        Do not show time stamp in the report
    </li>
    <li>
        Fixed -skip-symbols option
    </li>
    <li>
        Fixed detection of the GCC version number
    </li>
</ul>
<br/>

<b>Version 1.99.16 (January 28, 2016)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Do not check private part of the ABI when comparing ABI dumps created by the ABI Dumper tool with use of the -public-headers option
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -check-private-abi: enable check of the private ABI
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed counting of checked data types
    </li>
</ul>
<br/>

<b>Version 1.99.15 (December 11, 2015)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed hang on some template instances
    </li>
    <li>
        Fixed support for old ABI dumps (formatting of data types)
    </li>
    <li>
        Fixed false positives in the report if input ABI dumps contain __unknown__ types
    </li>
</ul>
<br/>

<b>Version 1.99.14 (November 01, 2015)</b><br/>
<b>New Options</b>
<ul>
    <li>
        -skip-types: set list of types that should not be checked
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed formatting of symbol signatures
    </li>
    <li>
        Fixed checks of template types
    </li>
</ul>
<br/>

<b>Version 1.99.13 (October 18, 2015)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Check public symbols only if comparing public ABI dumps generated by the ABI dumper (with -public-headers option)
    </li>
    <li>
        Added more metadata to the report
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -skip-internal-types: do not check data types matched by the pattern
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed Type_Became_Opaque, Parameter_Changed_Register, Parameter_From_Register and Parameter_To_Register rules
    </li>
    <li>
        Fixed method signatures in the report (C++)
    </li>
    <li>
        Fixed -headers-list option
    </li>
    <li>
        Option -skip-internal renamed to -skip-internal-symbols
    </li>
    <li>
        Fixed false positives if vtable-dumper generates incomplete data
    </li>
    <li>
        Fixed Makefile
    </li>
</ul>
<br/>

<b>Version 1.99.12 (September 20, 2015)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed title of the report
    </li>
    <li>
        Print warning if version number is not set in the ABI dump
    </li>
</ul>
<br/>

<b>Version 1.99.11 (September 12, 2015)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed Removed_Field_And_Layout rule
    </li>
    <li>
        Fixed -skip-symbols option
    </li>
</ul>
<br/>

<b>Version 1.99.10 (September 08, 2015)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Improved style of the report
    </li>
    <li>
        New documentation
    </li>
    <li>
        Added more test cases
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -types-list: specify a list of types that should be checked
    </li>
    <li>
        -gcc-options: specify additional compiler options
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Limited number of affected symbols shown for each BC problem in the report
    </li>
    <li>
        Fixed check of the DataType_Size_And_Stack rule
    </li>
    <li>
        Fixed checks of base classes
    </li>
    <li>
        Carefully substitute parameters in rules
    </li>
    <li>
        Allow to check for source-compatibility in the -cmp-systems mode by specifying both -bin and -src options
    </li>
    <li>
        Fixed sorting of problems listed in the report
    </li>
    <li>
        Limit number of checked types if -headers-list option is specified
    </li>
    <li>
        Fixed -headers-list and -skip-symbols options
    </li>
    <li>
        Fixed cross-platform issues
    </li>
    <li>
        Set LANG=C.UTF-8 for objdump
    </li>
    <li>
        Fixed list of headers in the report
    </li>
    <li>
        Fixed number of checked headers in the report summary. Removed support for old dumps &lt; 1.18
    </li>
    <li>
        Renamed -lib-full option to -title
    </li>
    <li>
        Carefully detect architecture of input objects and word size
    </li>
    <li>
        Corrected detection of the GCC target architecture
    </li>
    <li>
        More accurate checking of ABI dump names
    </li>
    <li>
        Fixed regressions with SysCheck.pm module
    </li>
    <li>
        Removed obsolete code and options
    </li>
    <li>
        Fixed the objdump command line when the path contains spaces
    </li>
    <li>
        Simplified Makefile
    </li>
    <li>
        Do not install system descriptors to PREFIX/share
    </li>
    <li>
        Take -relpath option into account in the SysCheck.pm module
    </li>
    <li>
        Fixed CSS styles of the CmpSystems module
    </li>
</ul>
<br/>

<b>Version 1.99.9 (January 23, 2014)</b><br/>
<b>New Options</b>
<ul>
    <li>
        -skip-internal: do not check internal interfaces matched by the pattern 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed duplicated entries in the XML report 
    </li>
    <li>
        Reduced size of the XML report 
    </li>
    <li>
        Fixed duplicated problems related to changed size of a global data 
    </li>
    <li>
        Options -v1 and -v2 can now be used when comparing ABI dumps to change library versions shown in the report 
    </li>
    <li>
        Fixed false positives with the size change of a template instance type 
    </li>
    <li>
        Fixed false positives with the change of a parameter/field type name 
    </li>
</ul>
<br/>

<b>Version 1.99.8.5 (October 03, 2013)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Optimized performance and memory usage (up to 90%) on input objects with a huge number of changes and deep data type trees (e.g. Linux kernel)
    </li>
    <li>
        Partial support for GCC 4.8.{0-1}, waiting for a fix for the bug <a href='http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57850'>57850</a> in the next GCC versions
    </li>
    <li>
        Support for incomplete ABI dumps
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -affected-limit
    </li>
    <li>
        -cpp-incompatible
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed identification of template constructors and destructors 
    </li>
    <li>
        Do not show "this" first argument of methods in the report
    </li>
    <li>
        Corrected descriptions of affected symbols in the report 
    </li>
    <li>
        Fixed false alarms on changed offset of parameters 
    </li>
    <li>
        Do not hang on class A&lt;N&gt;:public A&lt;N-1&gt; 
    </li>
    <li>
        Corrected identification of header files in the include_preamble 
    </li>
    <li>
        Corrected comparison of function pointer types 
    </li>
    <li>
        Corrected rule Global_Data_Size 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Code refactoring
    </li>
</ul>
<br/>

<b>Version 1.99.7 (July 01, 2013)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Added missed fields of template instance types to the ABI dump 
    </li>
    <li>
        Improved support for old ABI dumps 
    </li>
    <li>
        Added Struct_Field_Size_Increased rule 
    </li>
    <li>
        Support for vector types (GCC extension) 
    </li>
    <li>
        Removed duplicates from the ABI dump 
    </li>
    <li>
        Corrected visualization of v-table content in the report 
    </li>
    <li>
        Corrected identification of target headers 
    </li>
    <li>
        Corrected source-compatibility check 
    </li>
    <li>
        Performance optimization (5%) 
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -check - to check completeness of the ABI dump 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed default arguments of methods (broken in 1.99.1 due to added "this" parameter) 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Extended test suite 
    </li>
</ul>
<br/>

<b>Version 1.99.1 (June 07, 2013)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Support for ABI Dumper 0.97 
    </li>
    <li>
        Show added/removed inline virtual functions in the binary compatibility report 
    </li>
    <li>
        Added "this" hidden parameter to non-static class methods in the ABI dump 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed XmlDump module 
    </li>
    <li>
        Fixed CallConv module 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Support for old ABI dumps
    </li>
</ul>
<br/>

<b>Version 1.99 (May 24, 2013)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Support for ABI Dumper 0.95 
    </li>
    <li>
        Added 14 binary-compatibility rules
    </li>
    <li>
        Added 10 source-compatibility rules 
    </li>
    <li>
        Improved model of type alignment 
    </li>
    <li>
        Changed version of ABI dump format to 3.0 
    </li>
    <li>
        Added _vptr member to virtual classes 
    </li>
    <li>
        Added constants defined by GCC to ABI dump 
    </li>
    <li>
        Improved analysis of constants 
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -skip-symbols
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Increased severity of Field_Became_Non_Mutable rule 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Support for old ABI dumps 
    </li>
    <li>
        Extended test suite (+11 test cases) 
    </li>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.98.8 (February 07, 2013)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Show added and removed constants (#defines) in the report 
    </li>
    <li>
        Show changes in unnamed enumerations 
    </li>
    <li>
        Avoid false alarm about renamed field if old name of this field is defined to new (SC) 
    </li>
    <li>
        Recursive comparing of structured data types in *_Format rules 
    </li>
    <li>
        Added Typedef_BaseType_Format rule to check format changes in the typedef base type 
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -tolerant 
    </li>
    <li>
        -tolerance 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Increased severity of Parameter_BaseType_And_Size BC rule (Low to Medium) 
    </li>
    <li>
        Increased severity of Added_Field SC rule (Safe to Low) 
    </li>
    <li>
        Corrected handling of the tool error codes in the test suite 
    </li>
    <li>
        Corrected handling of relative paths in the descriptor options 
    </li>
    <li>
        Skipping linker-related options in gcc_options option of the descriptor 
    </li>
    <li>
        Corrected internal mangler for C++ functions 
    </li>
    <li>
        Corrected conditions for enabling of C++ compatibility mode 
    </li>
    <li>
        Corrected handling of C++ keywords in C-code 
    </li>
    <li>
        Corrected -extended option 
    </li>
    <li>
        Corrected Typedef_BaseType rule 
    </li>
    <li>
        Corrected parsing of default function arguments 
    </li>
    <li>
        Do not check presence of archive utilities if not used 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Extended test suite 
    </li>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.98.7 (December 14, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Extended extra info dumped by -extra-info option 
    </li>
    <li>
        Extended additional info dumped by -extra-dump option 
    </li>
    <li>
        Added specifiers for structs, unions and enums in the report and ABI dump 
    </li>
    <li>
        Improved support for old ABI dumps 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected -debug option 
    </li>
    <li>
        Corrected creating of archives with ABI dumps 
    </li>
    <li>
        Corrected parsing of includes in header files 
    </li>
    <li>
        Corrected processing of undefined symbols 
    </li>
    <li>
        Corrected -app option 
    </li>
    <li>
        Corrected processing of default paths to system libraries 
    </li>
    <li>
        Corrected Makefile 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Code cleaning and refactoring 
    </li>
</ul>
<br/>

<b>Version 1.98.6 (December 04, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Extended -extra-info and -extra-dump options 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected processing of input XML descriptor 
    </li>
    <li>
        Corrected "Parameter_Default_Value_Removed" rule 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.98.5 (November 30, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Support for Mac OS X 10.8 
    </li>
    <li>
        Support for OpenBSD 
    </li>
    <li>
        Support for old GCC versions &lt;= 4.2 
    </li>
    <li>
        Added "throw" and "weak" attributes of methods to ABI dump 
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -extra-info
    </li>
    <li>
        -extra-dump
    </li>
    <li>
        -force
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected order of user-defined include paths 
    </li>
    <li>
        Corrected internal C++ mangler 
    </li>
    <li>
        Removed false positives of the "Parameter_Type_Format" rule 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Extended test suite 
    </li>
    <li>
        Code cleaning 
    </li>
    <li>
        Docs cleaning 
    </li>
</ul>
<br/>

<b>Version 1.98.4 (October 18, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Optimization of memory usage (5%-10%) and performance (5%-10%) 
    </li>
    <li>
        Added "Used Reserved Field" rule of binary compatibility analysis 
    </li>
    <li>
        Improved design of the operating system compatibility report 
    </li>
    <li>
        Added meta descriptors for 334 libraries 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed an issue with diagnostics of added virtual functions 
    </li>
    <li>
        Corrected the list of functions affected by the compatibility problem 
    </li>
    <li>
        Avoid false alarm about removed function if this function became macro (SC) 
    </li>
    <li>
        Corrected parser of C header files 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Extended test suite 
    </li>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.98.3 (July 19, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Implemented a model of calling conventions on x86 and x86_64 
    </li>
    <li>
        Improved diagnostics of changes in function parameters and return value (distribution on registers and stack) 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
       Corrected parser of C++ header files to detect non-member functions inside namespaces 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Added requirement for Ctags (5.8 or newer) 
    </li>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.98.2 (June 26, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Support for reading ABI dumps in XML format 
    </li>
    <li>
        Automatic enabling of c++0x support if needed to compile headers 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected XML and Perl (default) formats of ABI dumps 
    </li>
    <li>
        Improved support for old ABI dumps 
    </li>
    <li>
        Improved -dump-system option 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Improved documentation 
    </li>
</ul>
<br/>

<b>Version 1.98.1 (June 18, 2012)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Removed symbols marked as LOCAL in a shared library from lists of added/removed symbols in source-compatibility report 
    </li>
    <li>
        Fixed a false positive with some removed extern "C" symbols in source-compatibility report 
    </li>
    <li>
        Fixed a bug with removed debug/ directory when using -use-dumps and -debug options together 
    </li>
    <li>
        Added support for "skip_including" section of target system XML descriptors (modules/Targets) used by -dump-system option 
    </li>
    <li>
        Extended XML ABI dumps by size attribute of library symbols 
    </li>
</ul>
<br/>

<b>Version 1.98.0 (June 14, 2012)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Implemented XML format of ABI dumps 
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -dump-format 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Improved support for old ABI dumps 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<br/>

<b>Version 1.97.8 (June 08, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Redesigned format of ABI dump 
    </li>
    <li>
        Optimization of memory usage (5%-10%) and performance (5%-10%) 
    </li>
    <li>
        Improved support for GCC 4.0-4.5 
    </li>
    <li>
        Added "add_namespaces" section of the XML descriptor 
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -open
    </li>
    <li>
        -sort
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Improved support for old ABI dumps 
    </li>
    <li>
        Fixed a bug with auto-detection of include paths when comparing two XML descriptors 
    </li>
    <li>
        Corrected output of -debug option 
    </li>
    <li>
        Corrected -dump-system and -cmp-systems options 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.97.5 (May 14, 2012)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Extended ABI dumps by source-level type declarations 
    </li>
    <li>
        Improved support for old ABI dumps 
    </li>
    <li>
        Optimization of memory usage (20%-30%) and performance (10%-20%) 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected auto-detection of a set of target headers to check/dump in -headers-only mode 
    </li>
    <li>
        Other fixes 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Extended regression test suite 
    </li>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.97.4 (April 16, 2012)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added 16 new binary-compatibility rules 
    </li>
    <li>
        Added 17 new source-compatibility rules 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Added some missed typedef types to function signatures 
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Improved support for old ABI dumps 
    </li>
    <li>
        Support for GCC 4.7 
    </li>
    <li>
        Extended regression test suite 
    </li>
    <li>
        Code cleaning 
    </li>
</ul>
<br/>

<b>Version 1.97.3 (April 03, 2012)</b><br/>
<b>Completed Tasks</b>
<ul>
    <li>
        Implement source-level compatibility checks
    </li>
    <li>
        Implement 2.0 architecture
    </li>
</ul>
<b>New Features</b>
<ul>
    <li>
        Added -browse=PROG option 
    </li>
    <li>
        Added -xml alias option for --report-format=xml
    </li>
    <li>
        Added -binary option to generate binary-compatibility report only 
    </li>
    <li>
        Added -source option to generate source-compatibility report only 
    </li>
    <li>
        Added -bin-report-path option: path to binary-compatibility report 
    </li>
    <li>
        Added -src-report-path option: path to source-compatibility report 
    </li>
</ul>
<b>Other Features</b>
<ul>
    <li>
        Improved debug mode (-debug) 
    </li>
    <li>
        Improved mark-up of the HTML report 
    </li>
    <li>
        Improved mark-up of the HTML report 
    </li>
    <li>
        Improved support for old ABI dumps 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected ABI dumps 
    </li>
</ul>
<br/>

<b>Version 1.96.8 (February 17, 2012)</b><br/>
<b>Completed Tasks</b>
<ul>
    <li>
        Implement XML format of compatibility report
    </li>
    <li>
        Testing on MeeGo 1.2 Harmattan Beta2
    </li>
</ul>
<b>New Features</b>
<ul>
    <li>
        Added hidden statistics line to compatibility report for operating systems
    </li>
    <li>
        Added -headers-list option
    </li>
    <li>
        Added -lang option
    </li>
    <li>
        Support for symbolic links in /usr/include and /usr/lib
    </li>
    <li>
        Added "skip_include_paths" section of the XML-descriptor 
    </li>
    <li>
        Added "skip_including" section of the XML-descriptor
    </li>
    <li>
        Added -list-affected option to create plain list of incompatible symbols
    </li>
    <li>
        Added -quiet option to print all errors and warnings to the log file instead of stderr and stdout
    </li>
    <li>
        Added -stdout option to print results to stdout
    </li>
    <li>
        Added an option to check binary compatibility in the extended sense
    </li>
    <li>
        Improve diagnostic messages for added base classes with virtual functions
    </li>
    <li>
        Added -update option to installer
    </li>
    <li>
        Added a relative default directory to locate modules after installation
    </li>
    <li>
        Compatibility rate = (high+1/2*medium+1/4*low) / number of symbols
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Some symbols with extern "C" linkage are missed in -headers-only mode
    </li>
    <li>
        Changes in global data are not detected under Windows
    </li>
    <li>
        False negative: change global data to be "const"
    </li>
    <li>
        Removed middle enumeration value is reported as renamed
    </li>
    <li>
        False positive: change parameter type from "const int" to "int"
    </li>
    <li>
        Support for old ABI dump format of ACC 1.21.6
    </li>
    <li>
        The tool doesn't search for included headers in /usr/lib/qt4/include/
    </li>
    <li>
        False Negative: Header is incompatible with itself
    </li>
    <li>
        Check libstdc++ in -headers-only mode
    </li>
    <li>
        Restrict checked header files in the -headers-only mode
    </li>
    <li>
        Problem with mangled C++ functions using old ABI dump formats in -headers-only mode
    </li>
    <li>
        Incorrect size of method pointer in ABI dumps
    </li>
    <li>
        False negative: add/remove "register" modifier of the parameter
    </li>
    <li>
        Incorrect WORD size when using old ABI dump format
    </li>
    <li>
        Conflict of a static method with a function of the same name in the ABI dump
    </li>
    <li>
        Missed right bracket of "func-ptr" type in HTML report
    </li>
    <li>
        Incorrect report for overridden methods
    </li>
    <li>
        False negative: override a virtual that doesn't come from a primary base
    </li>
    <li>
        False negative: change a function parameter to be "restrict"
    </li>
    <li>
        False negative: change a field to be "volatile"
    </li>
    <li>
        False negative: change "const"-ness of a return value 
    </li>
    <li>
        False negative: change "volatile" attribute of a method
    </li>
    <li>
        False positive: removed symbols with inline virtual prototype in the leaf class with default constructor
    </li>
</ul>
<br/>

<b>Version 1.94 (September 09, 2011)</b><br/>
<b>Completed Tasks</b>
<ul>
    <li>
        Separated regression tests into the module
    </li>
</ul>
<b>New Features</b>
<ul>
    <li>
        Added Makefile.pl installer
    </li>
</ul>
<br/>

<b>Version 1.93.8 (September 08, 2011)</b><br/>
<b>Completed Tasks</b>
<ul>
    <li>
        Separated rules DB
    </li>
    <li>
        Testing on Symbian SDK
    </li>
    <li>
        Testing on Windows SDK
    </li>
    <li>
        Support for OS3000
    </li>
</ul>
<b>New Features</b>
<ul>
    <li>
        SONAME change in the OS comparison table
    </li>
    <li>
        Added a compatibility percentage to the OS comparison table
    </li>
    <li>
        Added -debug option
    </li>
    <li>
        Added listing of symbols in OS comparison table
    </li>
    <li>
        Use zip format of dumps in Windows
    </li>
    <li>
        Added -dump-system descriptor.xml option
    </li>
    <li>
        Analysis of static libraries 
    </li>
    <li>
        Added -sysinfo option
    </li>
    <li>
        Added -component option
    </li>
    <li>
        Added -nostdinc option 
    </li>
    <li>
        Added "weakly"- and "almost"-compatible verdicts
    </li>
    <li>
         Added "skip_namespaces" section of the library XML-descriptor 
    </li>
    <li>
        Search for modules/ directory in the system
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Missed typedefs in the ABI dump using GCC 4.4.1
    </li>
    <li>
        False negative: change enum member value from zero to non-zero
    </li>
    <li>
        False negative: interchange the positions of two fields in a structure
    </li>
    <li>
        False positive: add a field instead of padding fields
    </li>
    <li>
        Problems with "copied" classes
    </li>
    <li>
        Changes in "private" fields
    </li>
    <li>
        Illegal modulus zero at abi-compliance-checker.pl
    </li>
    <li>
         Incorrect order of include paths
    </li>
    <li>
        Change constness of a class method
    </li>
    <li>
        False negative: change "struct Type" to "union Type"
    </li>
    <li>
        Change parameter type from "..." to "int"
    </li>
    <li>
        Remove/add "const"-qualifier of a method
    </li>
    <li>
        False negative: renamed parameters
    </li>
</ul>
<b>Other</b>
<ul>
    <li>
        Improved debug mode
    </li>
</ul>
<br/>

<b>Version 1.23.5 (July 01, 2011)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected exit codes: 0 - compatible, 1 - incompatible, 2 - error, ...
    </li>
    <li>
        Corrected diagnostic messages for C++ functions with changed signature
    </li>
    <li>
        Fixed regression with C++ non-member functions
    </li>
    <li>
        Removed false positive with overridden private methods
    </li>
    <li>
        Corrected functionality for checking binary compatibility of operating systems
    </li>
    <li>
        Removed false positive for removed default version of a symbol
    </li>
    <li>
        Adapted -dump-system option for MeeGo 1.2 Harmattan
    </li>
    <li>
        Fixed hanging execution on "#include "../../file.h"
    </li>
    <li>
        Fixed incorrect automatic include paths
    </li>
</ul>
<br/>

<b>Version 1.23 (June 07, 2011)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added 42 compatibility checks (total: 83) 
    </li>
    <li>
        Improved diagnostics of compatibility problems 
    </li>
    <li>
        Opened an issue tracker 
    </li>
    <li>
        Support for cross-compilers 
    </li>
    <li>
        Ported to Mac OS X (10.5) and MS Windows (Xp, Vista, 7) 
    </li>
    <li>
        Added a viewer of "real" v-table layouts for changed C++ classes 
    </li>
    <li>
        Added functionality to check OS backward compatibility 
    </li>
    <li>
        Supports for old-version dump formats (>=1.18) 
    </li>
    <li>
        Separated versioning of dump formats 
    </li>
    <li>
        Improved design of the compatibility report 
    </li>
    <li>
        Improved performance 
    </li>
    <li>
        Support for old GCC 3.4.4 
    </li>
</ul>
<b>New Options</b>
<ul>
    <li>
        -cross-gcc: support for cross-compilers 
    </li>
    <li>
        -sysroot: specify the alternative system root directory 
    </li>
    <li>
        -dump-system, -cmp-systems: checking OS backward compatibility 
    </li>
    <li>
        -use-dumps: check for compatibility using the intermediate dumping 
    </li>
    <li>
        -show-retval: show symbol's return value type in the report 
    </li>
    <li>
        -old-dumps: support for old-version dumps 
    </li>
    <li>
        -test-dump: test for dumping functionality 
    </li>
    <li>
        -report-path: change the location of output compatibility report 
    </li>
    <li>
        -dump-path: change the location of output ABI dump 
    </li>
    <li>
        -log1-path, -log2-path: change the location of output logs 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Reduced false positives 
    </li>
    <li>
        Support for C-headers containing C++ keywords 
    </li>
    <li>
        Corrected automatic include paths for headers 
    </li>
</ul>
<br/>

<b>Version 1.21.12 (April 29, 2011)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected automatic detection of include paths for header files
    </li>
    <li>
        Removed false positives with overridden virtual functions
    </li>
    <li>
        Corrected processing of typedef type names, fixed potential program hangup
    </li>
    <li>
        Added some missed problems relating to the return type changes of a function
    </li>
    <li>
        Corrected processing of a translation unit dump generated by modern GCC versions
    </li>
    <li>
        Corrected identifying of inline functions (using the -fkeep-inline-functions GCC option)
    </li>
    <li>
        Corrected parser for C++: analysis of const global data and functions inside a namespace
    </li>
    <li>
        Corrected names and v-table checks for template types
    </li>
    <li>
        Corrected checks for changes in enumerations
    </li>
    <li>
        Corrected ABI dumping and sorting of dumps
    </li>
    <li>
        Corrected analysis of added/removed virtual functions
    </li>
    <li>
        Corrected help message and documentation
    </li>
    <li>
        Documentation has been moved to "doc/" subdirectory
    </li>
    <li>
        Using File::Temp for storing temporary files
    </li>
    <li>
        Support for latest GCC 4.6.0 and old GCC v3.x series
    </li>
    <li>
        Fixed infinite loop finding the path for "which" command in the system
    </li>
    <li>
        Corrected distinction of descriptor kinds (headers, libraries, directories and XML-descriptors)
    </li>
    <li>
        Corrected processing of "include_paths" section of the XML-descriptor
    </li>
</ul>
<br/>

<b>Version 1.21 (August 19, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added -check-implementation option: compare disassembled binary code to detect changes in the interface implementation
    </li>
    <li>
        Added -objects-only option: compare shared objects without header files
    </li>
    <li>
        Added -v1 and -v2 options: specify version number outside the descriptor
    </li>
    <li>
        Improved help message
    </li>
    <li>
        Improved performance of the tool
    </li>
    <li>
        Removed template instances and stdc++ interfaces from the report (C++)
    </li>
    <li>
        Added README.html and CHANGES.html to the package
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected ABI compatibility report
    </li>
    <li>
        Corrected interface names and versions in the report
    </li>
    <li>
        Corrected number of problems in report summary
    </li>
    <li>
        Corrected ABI dump
    </li>
</ul>
<br/>

<b>Version 1.20 (August 30, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added "defines" section of the library descriptor: this section allows one to add defines at the headers compiling stage
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected reports about added/withdrawn members in the structure types and added/withdrawn parameters
    </li>
    <li>
        Corrected report about added/withdrawn virtual functions if -headers_only option specified
    </li>
    <li>
        Corrected processing of header paths containing special characters
    </li>
</ul>
<br/>

<b>Version 1.19 (July 22, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added -library_full_name option to display full library name in title of the report
    </li>
    <li>
        Added -relpath option to replace the {RELPATH} in the descriptor for ABI dumping
    </li>
    <li>
        Added "skip_libs" section of the library descriptor: this section contains a list of shared objects and/or directories with shared objects that should not be processed
    </li>
    <li>
        Improved performance on big libraries
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Removed duplicated problems from the report
    </li>
    <li>
        Corrected names of the template instances
    </li>
    <li>
        Corrected checking of reference type changes
    </li>
    <li>
        Corrected titles in the report
    </li>
    <li>
        Corrected size of some array types
    </li>
    <li>
        Corrected checking of added/withdrawn members in the structure types with reserved members
    </li>
    <li>
        Corrected checking of added/withdrawn parameters
    </li>
</ul>
<br/>

<b>Version 1.18 (June 25, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added -relpath1 and -relpath2 options to replace the {RELPATH} in the descriptors; old option -relpath was removed
    </li>
    <li>
        Added "add_include_paths" section of the library descriptor: this section contains a list of include paths that should be added to the automatically detected include paths
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Added some previously missed compatibility problems in the report
    </li>
    <li>
        Corrected techniques for auto-detection of header file dependencies (include paths)
    </li>
    <li>
        Removed problems relating to the changes in the temporary header files
    </li>
    <li>
        Corrected interface signatures in the report
    </li>
    <li>
        Corrected checking of added/withdrawn parameters
    </li>
    <li>
        Corrected changes in the virtual tables of the libraries with symbol versioning
    </li>
    <li>
        Corrected checking of complex namespaces changes (C++)
    </li>
    <li>
        Added namespaces information to the ABI dump
    </li>
</ul>
<br/>

<b>Version 1.17.2 (June 16, 2010)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed -separately option
    </li>
    <li>
        Corrected permissions of LICENSE file
    </li>
    <li>
        Corrected tool description
    </li>
</ul>
<br/>

<b>Version 1.17.1 (June 09, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added -relpath option for adding prefixes to the paths in the library descriptor
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected checking of added/withdrawn parameters
    </li>
    <li>
        Corrected processing of mixed C/C++ header sets
    </li>
    <li>
        Corrected checking of parameter type changes
    </li>
</ul>
<br/>

<b>Version 1.17 (June 08, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Visualizing of the serious changes (added/withdrawn parameters) in the interface signature
    </li>
    <li>
        Recursive analysis of constant changes
    </li>
    <li>
        Separated stderr and stdout streams of the tool
    </li>
    <li>
        Added "skip_constants" section of the library descriptor to skip checking of some constants
    </li>
    <li>
        Added -params option to add function parameter names to the report
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected analysis of virtual table layout changes
    </li>
    <li>
        Corrected analysis of parameter type changes
    </li>
    <li>
        Corrected complex array type names
    </li>
    <li>
        Corrected typedef names
    </li>
    <li>
        Corrected analysis of structure layout changes
    </li>
    <li>
        Fixed tool hanging on some C++ headers (with many namespaces)
    </li>
    <li>
        Corrected analysis of Glibc headers
    </li>
    <li>
        Corrected analysis of library language changes (if added some C++ headers)
    </li>
    <li>
        Corrected descriptions of some compatibility problems
    </li>
    <li>
        Corrected analysis of added/withdrawn parameters in C headers
    </li>
</ul>
<br/>

<b>Version 1.16 (May 05, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added -strict option for treating all compatibility warnings as problems
    </li>
    <li>
        Added -dumpversion option for printing tool version and don't do anything else
    </li>
    <li>
        Ignoring hidden .svn, .git, .bzr, .hg, and CVS directories
    </li>
    <li>
        Improved header files sorting for protecting from compilation errors on the intermediate phase of temporary header file compilation
    </li>
    <li>
        Improved techniques for auto-detection of header file dependencies (include paths)
    </li>
    <li>
        Ignoring problems related to changes of constants (defines) describing library version (*_VERSION_*, *_COPYRIGHT_* and other)
    </li>
    <li>
        New internal test cases
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Checking of some previously missed C++ namespaces
    </li>
    <li>
        Removed hidden "void const** __vtt_parm" parameters from signatures of some constructors
    </li>
    <li>
        Corrected dumping of C++ classes ABI
    </li>
    <li>
        Corrected checking of pure virtual destructors
    </li>
    <li>
        Removed unnecessary built-in constants from the ABI dump
    </li>
</ul>
<br/>

<b>Version 1.15 (March 26, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        The license was changed to dual GNU GPL and LGPL
    </li>
    <li>
        Added "skip_headers" section of the library descriptor
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected processing of "include_paths" section of the library descriptor
    </li>
    <li>
        Corrected processing of relative paths in the "headers" and "include_paths" sections of the descriptor
    </li>
    <li>
        Directory with temporary files renamed from "temp" to hidden ".tmp_dir"
    </li>
    <li>
        Corrected processing of shared object dependencies
    </li>
    <li>
        Corrected processing of some previously missed functions and conversion operators in C++
    </li>
    <li>
        Corrected internal test suite
    </li>
    <li>
        Corrected some error messages
    </li>
</ul>
<br/>

<b>Version 1.14 (March 03, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added techniques to auto-detect dependencies of a header file (include paths); providing of "include_paths" section of the descriptor is not necessary for now
    </li>
    <li>
        Ported to FreeBSD and Haiku
    </li>
    <li>
        Added check for gcc/g++ version (>=3.0.0)
    </li>
    <li>
        Added sorting of interface problems by namespace in the report (C++)
    </li>
    <li>
        Improved internal test suite
    </li>
    <li>
        Added log for describing tool actions and occurred errors
    </li>
    <li>
        Added exit error code (high/medium risk for ABI break)
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected ABI dumping
    </li>
    <li>
        Corrected styles of the report
    </li>
</ul>
<br/>

<b>Version 1.13 (February 16, 2010)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added -version option
    </li>

</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected processing of tab characters in the descriptor
    </li>
    <li>
        Corrected help message
    </li>
    <li>
        Corrected descriptor template structure
    </li>
    <li>
        Corrected error and warning messages
    </li>
    <li>
        Corrected processing of shared object dependencies
    </li>
</ul>
<br/>

<b>Version 1.12 (December 04, 2009)</b><br/>
<b>New Features</b>
<ul>
    <li>
        New help message
    </li>
    <li>
        Highlighting of [in-charge], [not-in-charge] constructors and destructors in the report was improved
    </li>
    <li>
        New option -time for enabling time measurements
    </li>
    <li>
        New internal test cases
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected classification of compatibility problems in the report
    </li>
    <li>
        Reduced priority of problems related to changes in a method's object
    </li>
    <li>
        Corrected complex template type names
    </li>
</ul>
<br/>

<b>Version 1.11 (November 10, 2009)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added -app option to check portability of applications to the new library version
    </li>
    <li>
        Memory usage decreased twice
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected checking of added middle structure members
    </li>
    <li>
        Corrected names of template types (with intrinsic, bool and string parameters)
    </li>
    <li>
        Corrected highlighting of function signatures in the report
    </li>
</ul>
<br/>

<b>Version 1.10 (November 02, 2009)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Checking added/dropped function parameters (C language only)
    </li>
    <li>
        Improved design of the report
    </li>
    <li>
        New internal test cases
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Incorrect checking of redefined virtual functions and differences in parameter types
    </li>
    <li>
        More careful checking of withdrawn interfaces using shared library dependencies
    </li>
</ul>
<br/>

<b>Version 1.9 (October 12, 2009)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Improved design of ABI compliance report
    </li>
    <li>
        Improved algorithms of checking parameter/field type change
    </li>
    <li>
        New internal test cases
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Fixed incorrect names of typedefs and function pointer types
    </li>
    <li>
        Checking of some previously missed C++ functions
    </li>
    <li>
        Removed some false positives from the report (for anon-types)
    </li>
</ul>
<br/>

<b>Version 1.8 (September 29, 2009)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Added ability to specify a file with a list of interfaces that should be checked
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Size of ABI info dumps have been reduced through removing of unnecessary information
    </li>
    <li>
        Incorrect names of template instances and function pointer types
    </li>
    <li>
        Incorrect positions of function parameters in the "Interface Problems" section of the report
    </li>
    <li>
        Removed some false positives from the report
    </li>
    <li>
        Incorrect handling of special symbols in the paths to header files and shared objects
    </li>
</ul>
<br/>

<b>Version 1.7 (September 11, 2009)</b><br/>
<b>New Features</b>
<ul>
    <li>
        Checking of incorrect symbols versioning
    </li>
    <li>
        Checking the values of defines (constants)
    </li>
    <li>
        Ability to check header files without shared objects; It is easy to run, but may provide a low quality report with a lot of false positives and without detecting of added/withdrawn interfaces
    </li>
    <li>
        Number of checked interfaces and data types in the report
    </li>
    <li>
        Added tests for checking new features
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Incorrect processing of duplicated headers in the input set (headers with the same name but different paths)
    </li>
    <li>
        Incorrect header files include order
    </li>
    <li>
        Sorting in the ABI dumps
    </li>
    <li>
        Incorrect processing of redefined virtual methods
    </li>
    <li>
        Incorrect processing of anon types
    </li>
    <li>
        Absence of some necessary information about C++ functions in the ABI dumps
    </li>
</ul>
<br/>

<b>Version 1.6 (August 31, 2009)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Corrected processing of relative paths in the library descriptor
    </li>
    <li>
        Display machine hardware name instead of processor type in the report
    </li>
    <li>
        Fixed grammar/spelling errors
    </li>
    <li>
        Renamed "internal_interfaces" section of the library descriptor to "skip_interfaces"
    </li>
    <li>
        Cosmetic changes in the code
    </li>
</ul>
<br/>

<b>Version 1.5 (August 25, 2009)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Absent information about opaque types and internal interfaces has been added to the ABI dump 
    </li>
    <li>
        Fixed style of the report 
    </li>
    <li>
        Fixed grammar/spelling 
    </li>
    <li>
        Renamed "internal_functions" section of the library descriptor to "internal_interfaces" 
    </li>
    <li>
        Renamed outptu ABI dump to "*.abi.tar.gz" (previously it was "*.info.tar.gz") 
    </li>
    <li>
        Corrected interface names in the report (for -separately option) 
    </li>
</ul>
<br/>

<b>Version 1.4 (August 18, 2009)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Added ability to check ABI compliance of library versions located on different machines 
    </li>
    <li>
        Header files checking mode by default has been changed: checking all header files together instead of separate checking 
    </li>
</ul>
<b>Bug Fixes</b>
<ul>
    <li>
        Incorrect description for affected interfaces 
    </li>
    <li>
        Incorrect virtual table checking 
    </li>
</ul>
<br/>

<b>Version 1.3 (August 14, 2009)</b><br/>
<b>Bug Fixes</b>
<ul>
    <li>
        Incorrect number of binary compatibility problems in the report summary 
    </li>
    <li>
        Incorrect design of problem descriptions in the report 
    </li>
</ul>
<br/>

<b>Version 1.1 (August 06, 2009)</b><br/>
<b>Improvements</b>
<ul>
    <li>
        Design of the report has been greatly improved 
    </li>
</ul>
<br/>

<b>Version 1.0 (July 31, 2009)</b><br/>
Initial version of the tool.

<div class="footer">
    get the source code on GitHub : <a href="https://github.com/lvc/abi-compliance-checker">lvc/abi-compliance-checker</a>
</div>

<br/>
<br/>

</div>
</body>
</html>
